package com.abou.model.common.product.search;

import com.abou.constant.product.ECategory;
import com.abou.constant.product.EClotheType;
import com.abou.constant.product.EProductType;
import com.abou.constant.product.ESize;
import com.abou.constant.product.ESortOrder;
import com.abou.model.common.AModel;

/**
 * The class of the search products request
 * 
 * @author vvvq5150
 */
public class SearchProductsRequest extends AModel {
  
  /**
   *
   */
  private static final long serialVersionUID = 1L;
  
  ESortOrder sortOrder = ESortOrder.ASC;
  private int pageIndex = 0;
  private int rowsNbByPage = 20;
  
  /**
   * The global search
   */
  private String globalSearch = "";
  
  /**
   * The product name
   */
  private String name = "";
  
  /**
   * The product description
   */
  private String description = "";
  
  /**
   * The product type
   */
  private EProductType productType;
  
  private EClotheType clotheType;
  private ECategory category;
  private ESize size;
  
  /**
   * The empty constructor
   */
  public SearchProductsRequest() {

    super();
  }
  
  /**
   * @param sortOrder {@link #getSortOrder()}
   * @param pageIndex {@link #getPageIndex()}
   * @param rowsNbByPage {@link #getRowsNbPerPage()}
   * @param name {@link #getName()}
   * @param description {@link #getDescription()}
   * @param type {@link #getProductType()}
   * @param clotheType {@link #getClotheType()}
   * @param category {@link #getCategory()}
   * @param size {@link #getSize()}
   */
  public SearchProductsRequest(ESortOrder sortOrder, int pageIndex,
      int rowsNbByPage, String name, String description, EProductType type,
      EClotheType clotheType, ECategory category, ESize size) {

    super();
    this.sortOrder = sortOrder;
    this.pageIndex = pageIndex;
    this.rowsNbByPage = rowsNbByPage;
    this.name = name;
    this.description = description;
    this.productType = type;
    this.clotheType = clotheType;
    this.category = category;
    this.size = size;
  }
  
  public String getName() {

    return name;
  }
  
  public void setName(String name) {

    this.name = name;
  }
  
  public String getDescription() {

    return description;
  }
  
  public void setDescription(String description) {

    this.description = description;
  }
  
  public EProductType getProductType() {

    return productType;
  }
  
  public void setProductType(EProductType type) {

    this.productType = type;
  }
  
  public EClotheType getClotheType() {

    return clotheType;
  }
  
  public void setClotheType(EClotheType clotheType) {

    this.clotheType = clotheType;
  }
  
  public ECategory getCategory() {

    return category;
  }
  
  public void setCategory(ECategory category) {

    this.category = category;
  }
  
  public ESize getSize() {

    return size;
  }
  
  public void setSize(ESize size) {

    this.size = size;
  }
  
  public ESortOrder getSortOrder() {

    return sortOrder;
  }
  
  public void setSortOrder(ESortOrder sortOrder) {

    this.sortOrder = sortOrder;
  }
  
  public int getPageIndex() {

    return pageIndex;
  }
  
  public void setPageIndex(int pageIndex) {

    this.pageIndex = pageIndex;
  }
  
  public int getRowsNbByPage() {

    return rowsNbByPage;
  }
  
  public void setRowsNbByPage(int rowsNbByPage) {

    this.rowsNbByPage = rowsNbByPage;
  }
  
  public void setGlobalSearch(String globalSearch) {

    this.globalSearch = globalSearch;
  }
  
  public String getGlobalSearch() {

    return globalSearch;
  }
}
